package com.chhuang.ewcrm.comm;

/**
 * -协议工具类
 * @author Shendi
 *
 */
public class Protocal {

    /**
     * -将字符串转换为byte数组 16进制
     * @param hexStr 要转换的字符串
     * @return 如果为null 则转换失败 否则返回byte数组
     */
    public static byte[] switchStringToHexadecimal(String hexStr) {
        String[] hexStrs = hexStr.split(" ");
        byte[] bytes = new byte[hexStrs.length];
        for (int i = 0;i < bytes.length;i++) {
            bytes[i] = (byte) Integer.parseInt(hexStrs[i],16);
        }
        return bytes;
    }

    /**
     * 将字符数组，组合成十六进制字符串
     * @param bytes 字符数组
     * @return 十六进制字符串
     */
    public static String switchByteToHexadecimal(byte[] bytes) {
        StringBuilder hexStr = new StringBuilder();
        for (int i=0; i<bytes.length; i++) {
            int num = bytes[i] & 0xFF;
            String hv = Integer.toHexString(num);
            if (hv.length() < 2) {
                hexStr.append(0);
            }
            hexStr.append(hv);
            if(i<bytes.length-1){
                hexStr.append(" ");
            }
        }
        return hexStr.toString().toUpperCase();
    }

}
